import { IPSApplication } from '../app/ipsapplication';
import { IPSSysServiceAPI } from '../service/ipssys-service-api';
import { IPSSysTestModule } from './ipssys-test-module';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSSysTestPrj
 */
export interface IPSSysTestPrj extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 系统应用
   *
   * @type {IPSApplication}
   */
  getPSApplication(): IPSApplication | null;

  /**
   * 系统应用
   *
   * @type {IPSApplication}
   */
  get psApplication(): IPSApplication | null;

  /**
   * 系统应用（必须存在）
   *
   * @type {IPSApplication}
   */
  getPSApplicationMust(): IPSApplication;

  /**
   * 系统服务接口
   *
   * @type {IPSSysServiceAPI}
   */
  getPSSysServiceAPI(): IPSSysServiceAPI | null;

  /**
   * 系统服务接口
   *
   * @type {IPSSysServiceAPI}
   */
  get psSysServiceAPI(): IPSSysServiceAPI | null;

  /**
   * 系统服务接口（必须存在）
   *
   * @type {IPSSysServiceAPI}
   */
  getPSSysServiceAPIMust(): IPSSysServiceAPI;

  /**
   * 测试模块集合
   *
   * @type {IPSSysTestModule[]}
   */
  getPSSysTestModules(): IPSSysTestModule[] | null;

  /**
   * 测试模块集合
   *
   * @type {IPSSysTestModule[]}
   */
  get psSysTestModules(): IPSSysTestModule[] | null;

  findPSSysTestModule(objKey: any): IPSSysTestModule | null;

  /**
   * 项目标记
   * @type {string}
   */
  prjTag: string;

  /**
   * 项目标记2
   * @type {string}
   */
  prjTag2: string;

  /**
   * 项目类型
   * @description 值模式 [系统测试项目类型] {SYSAPP：前端应用、 SYSSERVICEAPI：系统服务接口、 USER：用户自定义、 USER2：用户自定义2、 USER3：用户自定义3、 USER4：用户自定义4 }
   * @type {( string | 'SYSAPP' | 'SYSSERVICEAPI' | 'USER' | 'USER2' | 'USER3' | 'USER4')}
   */
  prjType: string | 'SYSAPP' | 'SYSSERVICEAPI' | 'USER' | 'USER2' | 'USER3' | 'USER4';
}
